Reassembly of packet fragments is a resource consuming procedure for both CPU (e.g., packet processing, memory copy, etc.) and memory (e.g., requiring fragments to be buffered). When a packet is reassembled by an end host (such as a PC, mobile phone, etc.), this cost is considered minor relative to the overall processing necessary for each packet received and passed on to upper layers. When tunneling packets within a network, however, a router (e.g., a decapsulating network device), rather than a host, may become responsible for fragmentation and reassembly. Unlike a host, a router is typically designed to do as little processing as possible before sending the packet on to another destination. In this case, the cost of reassembly becomes significant compared to the overall cost of decapsulating the packet.